package com.tms.service;

import com.github.pagehelper.PageInfo;
import com.tms.domain.Family;
import com.tms.domain.TDef;
import com.tms.domain.index.TDefUseRank;

import java.util.List;

/**
 * toolDef业务接口定义
 */
public interface ToolDefService {

    TDef findToolDefByCode(String code);

    /**
     * 根据ID查询
     */
    TDef findToolDefById(Integer id);

    /**
     * 创建
     */
    TDef createToolDef(TDef toolDef);

    /**
     * 根据ID删除
     */
    void deleteToolDefById(TDef toolDef);

    /**
     * 根据ID更新
     */
    TDef updateToolDefById(TDef toolDef);

    /**
     * 通过workcellId查找
     *
     * @param workcellId workcellId
     */
    List<String> findToolDefByWorkcellId(int workcellId);

    /**
     * 通过param类型的content查找
     *
     * @param page       页数
     * @param pageSize   每页个数
     * @param param      查询类型
     * @param content    内容
     * @param workcellId workcell的id
     */
    PageInfo<TDef> findToolDefByContent(int page, int pageSize, String param, String content, int workcellId);

    /**
     * 寻找所有的模具定义
     */
    int findAllToolDefNums();

    /**
     * 寻找模具定义及其次数
     */
    List<TDefUseRank> findTDefAndNum();

    /**
     * 通过名字查找familyId
     *
     * @param familyName family的name
     */
    Integer findFamilyIdByName(String familyName);

    /**
     * 找到所有的family
     *
     * @param workcellId workcellId
     */
    List<Family> findAllFamilies(int workcellId);
}